Skip to content

feat(website): the stage rail is a completeness ledger - #1043

Merged
blove merged 13 commits into
mainfrom
blove/stage-rail-redesign
Sep 6, 2026
Merged

feat(website): the stage rail is a completeness ledger#1043
blove merged 13 commits into
mainfrom
blove/stage-rail-redesign

Conversation

@blove

@blove blove commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Why

The old stage rail was busy and restated the frame: six text levels and about 75 words a beat, narrating what the recording was already showing, with CTAs that pointed away from the page at the peak of the act. It carried no takeaway a reader could leave with.

What

  • Four-segment act navigation (Tools · Persist · Approve · Render) replaces the eyebrow; segments read done / now / todo from progress, are keyboardable, and clicking one scrolls the act to that beat. Anchors (#stage-<beat>) resolve.
  • One block per beat: one check, one claim, one docs link, one proof line. The proof lines are derived from the recording at build time, with a spec that pins every line so a re-record cannot silently change them.
  • Beat one reframed as tool calls and citations.
  • One hold line inside the approve beat ("Keep scrolling to approve.").
  • The ending ledger: the four checks filled, "Feature complete for the final mile.", the derived install command, and "Spike it this week".
  • The stills (phone and reduced motion) carry the same anatomy.
  • The visible cue owns the pointer; hidden blocks share one cell and are hidden by opacity alone, so the publisher hands the pointer to the now block and to the ledger once render settles.
  • The recording is traced for deploy safety (outputFileTracingIncludes).
  • Cue windows tuned so every rail cue reaches full opacity at one of the scroll-craft harness's sample points (hold line, Render block, ledger), with a spec that models the engine's ramps and guards that.

Tests

  • npx nx test website: 132 files, 1319 tests, all passing (includes the new plateau-sample spec; the old cue strings fail it, the new ones pass).
  • npx nx lint website: 0 errors (52 pre-existing warnings).
  • npx nx build website: compiled successfully.
  • npx nx e2e website -- --grep "homepage stage": 4 passed, 1 skipped (the live-frame test, gated on STAGE_LIVE_FRAME=true), run twice.
  • npx nx e2e website -- --grep "homepage stage|homepage hero|landing page": 17 passed, 1 skipped.
  • scroll-craft harness (verify-home.mjs against a production serve on 4308): exit 0, no dead scroll detected, no cues-never-peak, all cues clear 4.5:1 contrast. The contact sheet shows the segments advancing, the checks filling at each settle, the hold line at full strength across the threshold, and the full ledger at the last in-act frame.
  • After merge and deploy: STAGE_LIVE_FRAME=true BASE_URL=https://threadplane.ai npx playwright test apps/website/e2e/home-stage.spec.ts --config apps/website/playwright.config.ts.

🤖 Generated with Claude Code

blove and others added 12 commits September 6, 2026 16:02
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…losing cues

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ecks, one claim, one link, one proof

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… traces the recording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… keyboardable, anchors resolve, hold and ledger layout

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The scroll test now asserts the rail's anatomy: segment state and check
fill at the Tools boundary, the one hold line on its plateau, and at the
end the ledger at full opacity with four filled checks, the pointer, and
the install command the copy declares. A new test clicks the Persist
segment and polls act progress into the persist window.

The scroll-craft harness reported the hold line and the Render block
never reaching full opacity: their 30%-of-window default ramps left the
plateaus between the harness's eight sample points, and the ledger's
60% ramp-in only reached 0.43 at the last in-act sample (masked in the
report by a text-key collision with the Tools block). The hold line now
overshoots the threshold by 20% of the approve span with a 0.3/0.2 ramp,
the Render block arrives over the first tenth of its window, and the
ledger ramps in over a fifth of the render tail. A spec case models the
engine's ramps and requires every rail cue to sit on its plateau at one
of the harness's sample points.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
threadplane Ready Ready Preview Sep 6, 2026 11:12pm UTC

Request Review

@blove
blove enabled auto-merge (squash) September 6, 2026 23:02

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

…mple, and plateaus are asserted independently of it

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@blove
blove merged commit 4d25cfb into main Sep 6, 2026
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant